为何部分程序员从不使用 break 或 continue 语句? | 您所在的位置:网站首页 › java continue break › 为何部分程序员从不使用 break 或 continue 语句? |
这种SB指引还有很多,例如只能出现一个return之类…… 而事实是,我们code review的一个很重要的原则就是短路优先。 也就是说,尽可能的短路(throw,return,break,continue) 语言发明这么多的短路运算符就是为了让你的代码更容易看懂的…… =========================================== 稍微讲一下什么叫做短路优先, 就是短路径优先,路径可以认为是某一个语句块,这个语句块是抽象意义上的,所以短路优先,就是语句块尽可能短而不是长,因为越短的语句块,人阅读时的心智负担就越小。 所以: 函数尽可能短,太长的函数拆分。 控制块尽可能短,太长的控制块抽出函数。 条件判断时,短分支写在长分支前面。 条件判断时,能不写else分支就不写,else if除外 变量声明和变量使用的间隔尽可能地短。 变量的作用域尽可能的短。 得到返回值尽可能早的return,清理操作放finally。[1] 发现异常尽可能早的throw,哪怕catch再rethrow。[2] @Zheng Dara 有一句话说的很对,咱写代码又不是写给傻子看的…… [1] 例子: public object Foo() { using( var stream = File.Open( "xxx" ) ) { if ( TryParse( stream, out var result ) return result; //a lot of codes... } }注:using是finally的语法糖 [2] 例子: public void Foo() { try { if ( TryDoSomething() == false ) throw new InvalidOperationException( "invalid operation" ); //a lot of codes ... } catch( Exception e ) { LogError( e ); throw; } } |
CopyRight 2018-2019 实验室设备网 版权所有 |